package AdvanceStringDemo.demo02;
//给定两个字符串，A和B
//A的旋转操作就是将A最左边的字符移动到最右边
//例如：若A='abcde'，在移动一次之后结果就是'bcdea'
//如果在若干次调整操作之后，A能变成B，那么返回true，不能匹配成功返回false
public class AdjustString {
    public static void main(String[] args) {
        String strA = "abcde";
        String strB = "cdeab";
        boolean flag = check(strA,strB);
//        for (int i = 0; flag && i<strA.length() ; i++) {
//            strA = rotate(strA);
//            flag = check(strA,strB);
//        }
        System.out.println(flag);
    }
    //循环并比较
    public static boolean check(String strA, String strB) {
        for (int i = 0; i < strA.length(); i++) {
            strA = rotate(strA);
            if(strB.equals(strA)){
                return true;
            }
        }
        //全部循环完了之后再返回
        return false;
    }
    //！！！！！！！！套路：
    //如果要修改字符串的内容
    //1.用subString进行截取
    //2.把字符串先变成一个字符数组，然后调整字符数组里面的数据，最后再把字符数组变成字符串
    public static String rotate(String str) {
        //截取思路
        char first = str.charAt(0);
        String end = str.substring(1);
        return end + first;
    }
    //方法二
//    public static String rotate(String str) {
//        char[] arr = str.toCharArray();
//        char frist = arr[0];
//        for (int i = 1; i < arr.length; i++) {
//            arr[i - 1] = arr[i];
//        }
//        arr[arr.length - 1] = frist;
//        String result = new String(arr);
//        return result;
//}
}